Graphical modeling has spawned a variety of software products such as Simulink® from The MathWorks, Inc. of Natick, Mass., that cater to various aspects of dynamic system simulation, analysis and design. Such products allow users to perform various types of tasks including constructing system models through a user-interface that allows drafting block diagram models, allowing augmentation of a pre-defined set of blocks with custom user-specified blocks, the use of the block diagram model to compute and trace the temporal evolution of the dynamic system (“executing” the block diagram), and automatically producing either deployable software systems or descriptions of hardware systems that mimic the behavior of either the entire model or portions of it (referred to herein as “code generation”). Each of the tasks listed above has many intricate details and subtle variations.
In addition, Simulink® also provide for non-graphical language to be included in graphical models. A graphical model created in Simulink® may, for example, contain programming language statements or instructions in the technical computing language of MATLAB®. The computational language of MATLAB® can support distributed computation and hardware description language code generation. Non-graphical or textual language, such as embedded MATLAB®, may be used to implement one or more entities of the graphical model. In this manner, a graphical model may comprise graphical and non-graphical entities, and the non-graphical entities may include any type of suitable text, such as any programming language including those that are dynamically typed.
A limitation with graphical modeling environments, however, is the inability to call a graphical entity (a callee) from a non-graphical (a caller) entity and the inability to call a non-graphical entity (a callee) from graphical or non-graphical entity (a caller).